/**
*  \file calibration.c
*
*  \brief  calibration parameter.
*
*  \author   paragen.py
*  \author   Michael J. Hohmann <michael.hohmann@linde-mh.de>
*
*
*/

/*===============================================[ private includes  ]================================================*/
#include "calibration.h"
#include <stddef.h>
#include "../cfg/calibration_cfg.h"

/*===============================================[ private defines   ]================================================*/
#ifndef CALIBRATION_FINGERPRINT_0x6CCDF2225A12122ED586C45CE95506E4
#error /* header has wrong version */
#endif
/*===============================================[ private datatypes ]================================================*/

/* entries: 128   */ 
struct calibration_parameter_info
{
   struct paragen_type_s8_mm key_switch_cal;
   struct paragen_type_u16_mm accelerator_1_min;
   struct paragen_type_u16_mm accelerator_1_max;
   struct paragen_type_u16_mm accelerator_2_min;
   struct paragen_type_u16_mm accelerator_2_max;
   struct paragen_type_u16_mm lift_potentiometer_min;
   struct paragen_type_u16_mm lift_potentiometer_max;
   struct paragen_type_u16_mm steer_left;
   struct paragen_type_u16_mm steer_right;
   struct paragen_type_u16_mm steer_neutral;
   struct paragen_type_s16_mm bdi_vbatt_cal_min;
   struct paragen_type_s16_mm bdi_vbatt_cal_max;
   struct paragen_type_u8_mm bdi_soc_delta_startup;
   struct paragen_type_u32_mm reserve0;
   struct paragen_type_u32_mm reserve1;
   struct paragen_type_u32_mm reserve2;
   struct paragen_type_u32_mm reserve3;
   struct paragen_type_u32_mm reserve4;
   struct paragen_type_u32_mm reserve5;
   struct paragen_type_u32_mm reserve6;
   struct paragen_type_u32_mm reserve7;
   struct paragen_type_u32_mm reserve8;
   struct paragen_type_u32_mm reserve9;
   struct paragen_type_u32_mm reserve10;
   struct paragen_type_u32_mm reserve11;
   struct paragen_type_u32_mm reserve12;
   struct paragen_type_u32_mm reserve13;
   struct paragen_type_u32_mm reserve14;
   struct paragen_type_u32_mm reserve15;
   struct paragen_type_u32_mm reserve16;
   struct paragen_type_u32_mm reserve17;
   struct paragen_type_u32_mm reserve18;
   struct paragen_type_u32_mm reserve19;
   struct paragen_type_u32_mm reserve20;
   struct paragen_type_u32_mm reserve21;
   struct paragen_type_u32_mm reserve22;
   struct paragen_type_u32_mm reserve23;
   struct paragen_type_u32_mm reserve24;
   struct paragen_type_u32_mm reserve25;
   struct paragen_type_u32_mm reserve26;
   struct paragen_type_u32_mm reserve27;
   struct paragen_type_u32_mm reserve28;
   struct paragen_type_u32_mm reserve29;
   struct paragen_type_u32_mm reserve30;
   struct paragen_type_u32_mm reserve31;
   struct paragen_type_u32_mm reserve32;
   struct paragen_type_u32_mm reserve33;
   struct paragen_type_u32_mm reserve34;
   struct paragen_type_u32_mm reserve35;
   struct paragen_type_u32_mm reserve36;
   struct paragen_type_u32_mm reserve37;
   struct paragen_type_u32_mm reserve38;
   struct paragen_type_u32_mm reserve39;
   struct paragen_type_u32_mm reserve40;
   struct paragen_type_u32_mm reserve41;
   struct paragen_type_u32_mm reserve42;
   struct paragen_type_u32_mm reserve43;
   struct paragen_type_u32_mm reserve44;
   struct paragen_type_u32_mm reserve45;
   struct paragen_type_u32_mm reserve46;
   struct paragen_type_u32_mm reserve47;
   struct paragen_type_u32_mm reserve48;
   struct paragen_type_u32_mm reserve49;
   struct paragen_type_u32_mm reserve50;
   struct paragen_type_u32_mm reserve51;
   struct paragen_type_u32_mm reserve52;
   struct paragen_type_u32_mm reserve53;
   struct paragen_type_u32_mm reserve54;
   struct paragen_type_u32_mm reserve55;
   struct paragen_type_u32_mm reserve56;
   struct paragen_type_u32_mm reserve57;
   struct paragen_type_u32_mm reserve58;
   struct paragen_type_u32_mm reserve59;
   struct paragen_type_u32_mm reserve60;
   struct paragen_type_u32_mm reserve61;
   struct paragen_type_u32_mm reserve62;
   struct paragen_type_u32_mm reserve63;
   struct paragen_type_u32_mm reserve64;
   struct paragen_type_u32_mm reserve65;
   struct paragen_type_u32_mm reserve66;
   struct paragen_type_u32_mm reserve67;
   struct paragen_type_u32_mm reserve68;
   struct paragen_type_u32_mm reserve69;
   struct paragen_type_u32_mm reserve70;
   struct paragen_type_u32_mm reserve71;
   struct paragen_type_u32_mm reserve72;
   struct paragen_type_u32_mm reserve73;
   struct paragen_type_u32_mm reserve74;
   struct paragen_type_u32_mm reserve75;
   struct paragen_type_u32_mm reserve76;
   struct paragen_type_u32_mm reserve77;
   struct paragen_type_u32_mm reserve78;
   struct paragen_type_u32_mm reserve79;
   struct paragen_type_u32_mm reserve80;
   struct paragen_type_u32_mm reserve81;
   struct paragen_type_u32_mm reserve82;
   struct paragen_type_u32_mm reserve83;
   struct paragen_type_u32_mm reserve84;
   struct paragen_type_u32_mm reserve85;
   struct paragen_type_u32_mm reserve86;
   struct paragen_type_u32_mm reserve87;
   struct paragen_type_u32_mm reserve88;
   struct paragen_type_u32_mm reserve89;
   struct paragen_type_u32_mm reserve90;
   struct paragen_type_u32_mm reserve91;
   struct paragen_type_u32_mm reserve92;
   struct paragen_type_u32_mm reserve93;
   struct paragen_type_u32_mm reserve94;
   struct paragen_type_u32_mm reserve95;
   struct paragen_type_u32_mm reserve96;
   struct paragen_type_u32_mm reserve97;
   struct paragen_type_u32_mm reserve98;
   struct paragen_type_u32_mm reserve99;
   struct paragen_type_u32_mm reserve100;
   struct paragen_type_u32_mm reserve101;
   struct paragen_type_u32_mm reserve102;
   struct paragen_type_u32_mm reserve103;
   struct paragen_type_u32_mm reserve104;
   struct paragen_type_u32_mm reserve105;
   struct paragen_type_u32_mm reserve106;
   struct paragen_type_u32_mm reserve107;
   struct paragen_type_u32_mm reserve108;
   struct paragen_type_u32_mm reserve109;
   struct paragen_type_u32_mm reserve110;
   struct paragen_type_u32_mm reserve111;
   struct paragen_type_u32_mm reserve112;
   struct paragen_type_u32_mm reserve113;
   struct paragen_type_u32_mm reserve114;
}; 

/*===============================================[ private variables ]================================================*/

static const struct calibration_parameter calibration_default_parameter=
{
   0,                         //key_switch_cal,
   2900,                      //accelerator_1_min,
   5000,                      //accelerator_1_max,
   2000,                      //accelerator_2_min,
   180,                       //accelerator_2_max,
   1900,                      //lift_potentiometer_min,
   5000,                      //lift_potentiometer_max,
   500,                       //steer_left,
   5000,                      //steer_right,
   2500,                      //steer_neutral,
   32,                        //bdi_vbatt_cal_min,
   -9,                        //bdi_vbatt_cal_max,
   5,                         //bdi_soc_delta_startup,
   0,                         //reserve0,
   0,                         //reserve1,
   0,                         //reserve2,
   0,                         //reserve3,
   0,                         //reserve4,
   0,                         //reserve5,
   0,                         //reserve6,
   0,                         //reserve7,
   0,                         //reserve8,
   0,                         //reserve9,
   0,                         //reserve10,
   0,                         //reserve11,
   0,                         //reserve12,
   0,                         //reserve13,
   0,                         //reserve14,
   0,                         //reserve15,
   0,                         //reserve16,
   0,                         //reserve17,
   0,                         //reserve18,
   0,                         //reserve19,
   0,                         //reserve20,
   0,                         //reserve21,
   0,                         //reserve22,
   0,                         //reserve23,
   0,                         //reserve24,
   0,                         //reserve25,
   0,                         //reserve26,
   0,                         //reserve27,
   0,                         //reserve28,
   0,                         //reserve29,
   0,                         //reserve30,
   0,                         //reserve31,
   0,                         //reserve32,
   0,                         //reserve33,
   0,                         //reserve34,
   0,                         //reserve35,
   0,                         //reserve36,
   0,                         //reserve37,
   0,                         //reserve38,
   0,                         //reserve39,
   0,                         //reserve40,
   0,                         //reserve41,
   0,                         //reserve42,
   0,                         //reserve43,
   0,                         //reserve44,
   0,                         //reserve45,
   0,                         //reserve46,
   0,                         //reserve47,
   0,                         //reserve48,
   0,                         //reserve49,
   0,                         //reserve50,
   0,                         //reserve51,
   0,                         //reserve52,
   0,                         //reserve53,
   0,                         //reserve54,
   0,                         //reserve55,
   0,                         //reserve56,
   0,                         //reserve57,
   0,                         //reserve58,
   0,                         //reserve59,
   0,                         //reserve60,
   0,                         //reserve61,
   0,                         //reserve62,
   0,                         //reserve63,
   0,                         //reserve64,
   0,                         //reserve65,
   0,                         //reserve66,
   0,                         //reserve67,
   0,                         //reserve68,
   0,                         //reserve69,
   0,                         //reserve70,
   0,                         //reserve71,
   0,                         //reserve72,
   0,                         //reserve73,
   0,                         //reserve74,
   0,                         //reserve75,
   0,                         //reserve76,
   0,                         //reserve77,
   0,                         //reserve78,
   0,                         //reserve79,
   0,                         //reserve80,
   0,                         //reserve81,
   0,                         //reserve82,
   0,                         //reserve83,
   0,                         //reserve84,
   0,                         //reserve85,
   0,                         //reserve86,
   0,                         //reserve87,
   0,                         //reserve88,
   0,                         //reserve89,
   0,                         //reserve90,
   0,                         //reserve91,
   0,                         //reserve92,
   0,                         //reserve93,
   0,                         //reserve94,
   0,                         //reserve95,
   0,                         //reserve96,
   0,                         //reserve97,
   0,                         //reserve98,
   0,                         //reserve99,
   0,                         //reserve100,
   0,                         //reserve101,
   0,                         //reserve102,
   0,                         //reserve103,
   0,                         //reserve104,
   0,                         //reserve105,
   0,                         //reserve106,
   0,                         //reserve107,
   0,                         //reserve108,
   0,                         //reserve109,
   0,                         //reserve110,
   0,                         //reserve111,
   0,                         //reserve112,
   0,                         //reserve113,
   0,                         //reserve114
};

static const struct calibration_parameter_info calibration_info=
{
   { { paragen_type_s8_mm, offsetof(struct calibration_parameter, key_switch_cal), U32_CONST(0x00000003),U32_CONST(0x00000001) }, -128, 127,1 },
   { { paragen_type_u16_mm, offsetof(struct calibration_parameter, accelerator_1_min), U32_CONST(0x00000003),U32_CONST(0x00000001) }, 0, 3999,1 },
   { { paragen_type_u16_mm, offsetof(struct calibration_parameter, accelerator_1_max), U32_CONST(0x00000003),U32_CONST(0x00000001) }, 4000, 5500,1 },
   { { paragen_type_u16_mm, offsetof(struct calibration_parameter, accelerator_2_min), U32_CONST(0x00000003),U32_CONST(0x00000001) }, 1000, 3999,1 },
   { { paragen_type_u16_mm, offsetof(struct calibration_parameter, accelerator_2_max), U32_CONST(0x00000003),U32_CONST(0x00000001) }, 0, 999,1 },
   { { paragen_type_u16_mm, offsetof(struct calibration_parameter, lift_potentiometer_min), U32_CONST(0x00000003),U32_CONST(0x00000001) }, 0, 2999,1 },
   { { paragen_type_u16_mm, offsetof(struct calibration_parameter, lift_potentiometer_max), U32_CONST(0x00000003),U32_CONST(0x00000001) }, 3000, 5500,1 },
   { { paragen_type_u16_mm, offsetof(struct calibration_parameter, steer_left), U32_CONST(0x00000003),U32_CONST(0x00000001) }, 0, 2000,1 },
   { { paragen_type_u16_mm, offsetof(struct calibration_parameter, steer_right), U32_CONST(0x00000003),U32_CONST(0x00000001) }, 4000, 5500,1 },
   { { paragen_type_u16_mm, offsetof(struct calibration_parameter, steer_neutral), U32_CONST(0x00000003),U32_CONST(0x00000001) }, 2000, 3000,1 },
   { { paragen_type_s16_mm, offsetof(struct calibration_parameter, bdi_vbatt_cal_min), U32_CONST(0x00000003),U32_CONST(0x00000001) }, -200, 200,1 },
   { { paragen_type_s16_mm, offsetof(struct calibration_parameter, bdi_vbatt_cal_max), U32_CONST(0x00000003),U32_CONST(0x00000001) }, -200, 200,1 },
   { { paragen_type_u8_mm, offsetof(struct calibration_parameter, bdi_soc_delta_startup), U32_CONST(0x00000003),U32_CONST(0x00000001) }, 0, 100,1 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve0), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve1), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve2), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve3), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve4), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve5), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve6), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve7), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve8), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve9), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve10), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve11), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve12), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve13), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve14), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve15), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve16), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve17), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve18), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve19), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve20), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve21), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve22), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve23), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve24), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve25), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve26), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve27), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve28), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve29), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve30), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve31), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve32), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve33), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve34), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve35), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve36), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve37), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve38), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve39), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve40), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve41), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve42), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve43), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve44), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve45), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve46), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve47), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve48), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve49), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve50), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve51), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve52), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve53), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve54), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve55), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve56), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve57), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve58), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve59), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve60), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve61), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve62), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve63), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve64), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve65), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve66), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve67), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve68), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve69), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve70), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve71), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve72), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve73), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve74), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve75), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve76), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve77), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve78), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve79), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve80), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve81), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve82), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve83), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve84), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve85), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve86), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve87), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve88), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve89), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve90), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve91), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve92), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve93), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve94), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve95), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve96), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve97), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve98), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve99), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve100), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve101), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve102), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve103), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve104), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve105), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve106), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve107), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve108), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve109), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve110), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve111), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve112), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve113), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 },
   { { paragen_type_u32_mm, offsetof(struct calibration_parameter, reserve114), U32_CONST(0x00000000),U32_CONST(0x00000000) }, 0, 0,0 }
};

static const struct paragen_index  calibration_index[]=
{
   { 0x000003E8, (struct paragen_type_header*) &calibration_info.key_switch_cal },
   { 0x000003E9, (struct paragen_type_header*) &calibration_info.accelerator_1_min },
   { 0x000003EA, (struct paragen_type_header*) &calibration_info.accelerator_1_max },
   { 0x000003EB, (struct paragen_type_header*) &calibration_info.accelerator_2_min },
   { 0x000003EC, (struct paragen_type_header*) &calibration_info.accelerator_2_max },
   { 0x000003ED, (struct paragen_type_header*) &calibration_info.lift_potentiometer_min },
   { 0x000003EE, (struct paragen_type_header*) &calibration_info.lift_potentiometer_max },
   { 0x000003EF, (struct paragen_type_header*) &calibration_info.steer_left },
   { 0x000003F0, (struct paragen_type_header*) &calibration_info.steer_right },
   { 0x000003F1, (struct paragen_type_header*) &calibration_info.steer_neutral },
   { 0x000003F2, (struct paragen_type_header*) &calibration_info.bdi_vbatt_cal_min },
   { 0x000003F3, (struct paragen_type_header*) &calibration_info.bdi_vbatt_cal_max },
   { 0x000003F4, (struct paragen_type_header*) &calibration_info.bdi_soc_delta_startup },
   { 0x000003F5, (struct paragen_type_header*) &calibration_info.reserve0 },
   { 0x000003F6, (struct paragen_type_header*) &calibration_info.reserve1 },
   { 0x000003F7, (struct paragen_type_header*) &calibration_info.reserve2 },
   { 0x000003F8, (struct paragen_type_header*) &calibration_info.reserve3 },
   { 0x000003F9, (struct paragen_type_header*) &calibration_info.reserve4 },
   { 0x000003FA, (struct paragen_type_header*) &calibration_info.reserve5 },
   { 0x000003FB, (struct paragen_type_header*) &calibration_info.reserve6 },
   { 0x000003FC, (struct paragen_type_header*) &calibration_info.reserve7 },
   { 0x000003FD, (struct paragen_type_header*) &calibration_info.reserve8 },
   { 0x000003FE, (struct paragen_type_header*) &calibration_info.reserve9 },
   { 0x000003FF, (struct paragen_type_header*) &calibration_info.reserve10 },
   { 0x00000400, (struct paragen_type_header*) &calibration_info.reserve11 },
   { 0x00000401, (struct paragen_type_header*) &calibration_info.reserve12 },
   { 0x00000402, (struct paragen_type_header*) &calibration_info.reserve13 },
   { 0x00000403, (struct paragen_type_header*) &calibration_info.reserve14 },
   { 0x00000404, (struct paragen_type_header*) &calibration_info.reserve15 },
   { 0x00000405, (struct paragen_type_header*) &calibration_info.reserve16 },
   { 0x00000406, (struct paragen_type_header*) &calibration_info.reserve17 },
   { 0x00000407, (struct paragen_type_header*) &calibration_info.reserve18 },
   { 0x00000408, (struct paragen_type_header*) &calibration_info.reserve19 },
   { 0x00000409, (struct paragen_type_header*) &calibration_info.reserve20 },
   { 0x0000040A, (struct paragen_type_header*) &calibration_info.reserve21 },
   { 0x0000040B, (struct paragen_type_header*) &calibration_info.reserve22 },
   { 0x0000040C, (struct paragen_type_header*) &calibration_info.reserve23 },
   { 0x0000040D, (struct paragen_type_header*) &calibration_info.reserve24 },
   { 0x0000040E, (struct paragen_type_header*) &calibration_info.reserve25 },
   { 0x0000040F, (struct paragen_type_header*) &calibration_info.reserve26 },
   { 0x00000410, (struct paragen_type_header*) &calibration_info.reserve27 },
   { 0x00000411, (struct paragen_type_header*) &calibration_info.reserve28 },
   { 0x00000412, (struct paragen_type_header*) &calibration_info.reserve29 },
   { 0x00000413, (struct paragen_type_header*) &calibration_info.reserve30 },
   { 0x00000414, (struct paragen_type_header*) &calibration_info.reserve31 },
   { 0x00000415, (struct paragen_type_header*) &calibration_info.reserve32 },
   { 0x00000416, (struct paragen_type_header*) &calibration_info.reserve33 },
   { 0x00000417, (struct paragen_type_header*) &calibration_info.reserve34 },
   { 0x00000418, (struct paragen_type_header*) &calibration_info.reserve35 },
   { 0x00000419, (struct paragen_type_header*) &calibration_info.reserve36 },
   { 0x0000041A, (struct paragen_type_header*) &calibration_info.reserve37 },
   { 0x0000041B, (struct paragen_type_header*) &calibration_info.reserve38 },
   { 0x0000041C, (struct paragen_type_header*) &calibration_info.reserve39 },
   { 0x0000041D, (struct paragen_type_header*) &calibration_info.reserve40 },
   { 0x0000041E, (struct paragen_type_header*) &calibration_info.reserve41 },
   { 0x0000041F, (struct paragen_type_header*) &calibration_info.reserve42 },
   { 0x00000420, (struct paragen_type_header*) &calibration_info.reserve43 },
   { 0x00000421, (struct paragen_type_header*) &calibration_info.reserve44 },
   { 0x00000422, (struct paragen_type_header*) &calibration_info.reserve45 },
   { 0x00000423, (struct paragen_type_header*) &calibration_info.reserve46 },
   { 0x00000424, (struct paragen_type_header*) &calibration_info.reserve47 },
   { 0x00000425, (struct paragen_type_header*) &calibration_info.reserve48 },
   { 0x00000426, (struct paragen_type_header*) &calibration_info.reserve49 },
   { 0x00000427, (struct paragen_type_header*) &calibration_info.reserve50 },
   { 0x00000428, (struct paragen_type_header*) &calibration_info.reserve51 },
   { 0x00000429, (struct paragen_type_header*) &calibration_info.reserve52 },
   { 0x0000042A, (struct paragen_type_header*) &calibration_info.reserve53 },
   { 0x0000042B, (struct paragen_type_header*) &calibration_info.reserve54 },
   { 0x0000042C, (struct paragen_type_header*) &calibration_info.reserve55 },
   { 0x0000042D, (struct paragen_type_header*) &calibration_info.reserve56 },
   { 0x0000042E, (struct paragen_type_header*) &calibration_info.reserve57 },
   { 0x0000042F, (struct paragen_type_header*) &calibration_info.reserve58 },
   { 0x00000430, (struct paragen_type_header*) &calibration_info.reserve59 },
   { 0x00000431, (struct paragen_type_header*) &calibration_info.reserve60 },
   { 0x00000432, (struct paragen_type_header*) &calibration_info.reserve61 },
   { 0x00000433, (struct paragen_type_header*) &calibration_info.reserve62 },
   { 0x00000434, (struct paragen_type_header*) &calibration_info.reserve63 },
   { 0x00000435, (struct paragen_type_header*) &calibration_info.reserve64 },
   { 0x00000436, (struct paragen_type_header*) &calibration_info.reserve65 },
   { 0x00000437, (struct paragen_type_header*) &calibration_info.reserve66 },
   { 0x00000438, (struct paragen_type_header*) &calibration_info.reserve67 },
   { 0x00000439, (struct paragen_type_header*) &calibration_info.reserve68 },
   { 0x0000043A, (struct paragen_type_header*) &calibration_info.reserve69 },
   { 0x0000043B, (struct paragen_type_header*) &calibration_info.reserve70 },
   { 0x0000043C, (struct paragen_type_header*) &calibration_info.reserve71 },
   { 0x0000043D, (struct paragen_type_header*) &calibration_info.reserve72 },
   { 0x0000043E, (struct paragen_type_header*) &calibration_info.reserve73 },
   { 0x0000043F, (struct paragen_type_header*) &calibration_info.reserve74 },
   { 0x00000440, (struct paragen_type_header*) &calibration_info.reserve75 },
   { 0x00000441, (struct paragen_type_header*) &calibration_info.reserve76 },
   { 0x00000442, (struct paragen_type_header*) &calibration_info.reserve77 },
   { 0x00000443, (struct paragen_type_header*) &calibration_info.reserve78 },
   { 0x00000444, (struct paragen_type_header*) &calibration_info.reserve79 },
   { 0x00000445, (struct paragen_type_header*) &calibration_info.reserve80 },
   { 0x00000446, (struct paragen_type_header*) &calibration_info.reserve81 },
   { 0x00000447, (struct paragen_type_header*) &calibration_info.reserve82 },
   { 0x00000448, (struct paragen_type_header*) &calibration_info.reserve83 },
   { 0x00000449, (struct paragen_type_header*) &calibration_info.reserve84 },
   { 0x0000044A, (struct paragen_type_header*) &calibration_info.reserve85 },
   { 0x0000044B, (struct paragen_type_header*) &calibration_info.reserve86 },
   { 0x0000044C, (struct paragen_type_header*) &calibration_info.reserve87 },
   { 0x0000044D, (struct paragen_type_header*) &calibration_info.reserve88 },
   { 0x0000044E, (struct paragen_type_header*) &calibration_info.reserve89 },
   { 0x0000044F, (struct paragen_type_header*) &calibration_info.reserve90 },
   { 0x00000450, (struct paragen_type_header*) &calibration_info.reserve91 },
   { 0x00000451, (struct paragen_type_header*) &calibration_info.reserve92 },
   { 0x00000452, (struct paragen_type_header*) &calibration_info.reserve93 },
   { 0x00000453, (struct paragen_type_header*) &calibration_info.reserve94 },
   { 0x00000454, (struct paragen_type_header*) &calibration_info.reserve95 },
   { 0x00000455, (struct paragen_type_header*) &calibration_info.reserve96 },
   { 0x00000456, (struct paragen_type_header*) &calibration_info.reserve97 },
   { 0x00000457, (struct paragen_type_header*) &calibration_info.reserve98 },
   { 0x00000458, (struct paragen_type_header*) &calibration_info.reserve99 },
   { 0x00000459, (struct paragen_type_header*) &calibration_info.reserve100 },
   { 0x0000045A, (struct paragen_type_header*) &calibration_info.reserve101 },
   { 0x0000045B, (struct paragen_type_header*) &calibration_info.reserve102 },
   { 0x0000045C, (struct paragen_type_header*) &calibration_info.reserve103 },
   { 0x0000045D, (struct paragen_type_header*) &calibration_info.reserve104 },
   { 0x0000045E, (struct paragen_type_header*) &calibration_info.reserve105 },
   { 0x0000045F, (struct paragen_type_header*) &calibration_info.reserve106 },
   { 0x00000460, (struct paragen_type_header*) &calibration_info.reserve107 },
   { 0x00000461, (struct paragen_type_header*) &calibration_info.reserve108 },
   { 0x00000462, (struct paragen_type_header*) &calibration_info.reserve109 },
   { 0x00000463, (struct paragen_type_header*) &calibration_info.reserve110 },
   { 0x00000464, (struct paragen_type_header*) &calibration_info.reserve111 },
   { 0x00000465, (struct paragen_type_header*) &calibration_info.reserve112 },
   { 0x00000466, (struct paragen_type_header*) &calibration_info.reserve113 },
   { 0x00000467, (struct paragen_type_header*) &calibration_info.reserve114 }
};

struct calibration_parameter calibration_parameter_ram;

/*===============================================[ public variables  ]================================================*/

/** Parameter pointer
*  Pointer to read the Parameter from application
*/
struct calibration_parameter const * const calibration = &calibration_parameter_ram;

const struct paragen_object calibration_obj =
{
   CALIBRATION_SD,
   (void*) &calibration_parameter_ram,
   (U32) CALIBRATION_ADDRESS,
   calibration_index,
   (struct paragen_type_header *) &calibration_info,
   (void*) &calibration_default_parameter,
   sizeof( struct calibration_parameter ),
   sizeof calibration_index /sizeof(struct paragen_index ),
   {0x6C,0xCD,0xF2,0x22,0x5A,0x12,0x12,0x2E,0xD5,0x86,0xC4,0x5C,0xE9,0x55,0x06,0xE4} /* finger print */ 
};

/*===============================================[ private functions ]================================================*/

/*====================================================================================================================*/


/***********************************************************************************************************************
*                             Copyright 2020 Linde Material Handling. All rights reserved.                             *
***********************************************************************************************************************/
